1. Field of the Invention
This invention relates to an electrically rewritable and non-volatile semiconductor memory device, specifically relates to a method for programming it, which is able to obtain precise data threshold level distributions.
2. Description of the Related Art
There is increased a demand for NAND-type flash memories in accordance with increasing of the demand for mobile devices, which deal with large capacitive data such as a still or moving image. In the recent flash memories, since it is used such a multi-level data storage scheme that two or more bits are stored in one memory cell, it has become possible to store a quantity of information data in a relatively small chip area.
In a highly integrated flash memory, in which the cell miniaturization has been advanced, interference between adjacent cells affects data threshold distributions. Specifically, in a multi-level data storage scheme, threshold widths and gaps in the data threshold distributions are set to be narrower than those in a binary data storage scheme, so that the interference between adjacent cells affects the data reliability.
Considering the above-described situation, a programming technique, which suppresses the data threshold level variation due to capacitive coupling between floating gates of adjacent cells, has been disclosed in, for example, JP-A2004-192789.
On the other hand, to program data with narrow threshold distributions, it is usually in need of making the program voltage step as small as possible. As a result, it takes a long time to program a certain data level. With respect to this situation, there has been disclosed, for example, in JP-A2007-4861, such a high speed programming technique as to judge a memory cell's program speed and apply a program voltage pulse in accordance with the judged program speed.